package com.wms.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.relational.core.mapping.Table;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;


/**
 * 调拨单;
 * @author : http://www.chiner.pro
 * @date : 2025-8-9
 */
@ApiModel(value = "调拨单",description = "")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name="b_transfer_order")
public class Allocate  implements Serializable,Cloneable {
    /**
     * 调拨id
     */
    @ApiModelProperty(name = "调拨id", notes = "")
    private int id;
    /**
     * 调拨单号
     */
    @ApiModelProperty(name = "调拨单号", notes = "")
    private String allocateCode;
    /**
     * 调拨时间
     */
    @ApiModelProperty(name = "调拨时间", notes = "")
    private LocalDateTime transferDate;
    /**
     * 调出仓库名
     */
    @ApiModelProperty(name = "调出仓库名", notes = "")
    private String outName;

    /**
     * 调拨人
     */
    @ApiModelProperty(name = "调拨人", notes = "")
    private String userName;
    /**
     * 审核状态;0-待审核  1-审核通过 2-审核未通过
     */
    @ApiModelProperty(name = "审核状态", notes = "1未审核 2 审核通过  3审核未通过")
    private int auditStatus;
    /**
     * 调拨状态;0-未出库 1-部分出库 2-全部出库
     */
    @ApiModelProperty(name = "调拨状态", notes = "1 未出库 2 部分出库  3 已出库")
    private int status ;
    /**
     * 装框数量
     */
    @ApiModelProperty(name = "装框数量", notes = "")
    private Integer num;
    /**
     * 调入仓库名
     */
    @ApiModelProperty(name = "调入仓库名", notes = "")
    private String inName;

    @ApiModelProperty(name="审核人id",hidden = true)
    @JsonIgnore
    private Integer auditUserId;
    @JsonIgnore
    @ApiModelProperty(name="审核人姓名",hidden = true)
    private String auditUser;
    @JsonIgnore
    @ApiModelProperty(name="审核时间",hidden = true)
    private String auditDate;
    @JsonIgnore
    @ApiModelProperty(name="审核备注",hidden = true)
    private String note;
    @JsonIgnore
    @ApiModelProperty(name="调拨单详情" )
    List<Allocatedetail> allocatedetails;
}